class SocketBuilder {

  websocket: WebSocket;

  constructor(url: string) {
    if (typeof (WebSocket) === "undefined") {
      throw new Error('不支持websocket');
    }
    if (!url) {
      throw new Error('websocket url不能为空');
    }
    console.log(url)
    this.websocket = new WebSocket(url);
  }

  static builder(url: string) {
    return new SocketBuilder(url);
  }

  open(onopen: any) {
    this.websocket.onopen = onopen;
    return this;
  }

  error(onerror: any) {
    this.websocket.onerror = onerror;
    return this;
  }

  message(onmessage: any) {
    this.websocket.onmessage = onmessage;
    return this;
  }

  close(onclose: any) {
    this.websocket.onclose = onclose;
    return this;
  }

  build() {
    return this.websocket;
  }
}

export default SocketBuilder;
